package org.aspectsense.middleware.annotations;

	import java.lang.annotation.ElementType;
	import java.lang.annotation.Target;
	import java.lang.annotation.RetentionPolicy;
	import java.lang.annotation.Retention;

	/**
	 * Java annotation class for describing <code>AspectSence</code> Components.
	 * @author Nearchos Paspallis
	 * @author Costas Kakousis
	 *
	 */
	@Retention(RetentionPolicy.RUNTIME)
	@Target(ElementType.TYPE)
	public @interface Component
	{
	    /**
	     * The ID to be used when displaying the component.
	     *
	     * @return a String identifying this component when displayed (e.g., in
	     * GUIs)
	     */
	    String displayID();

	    /**
	     * Some text describing the specific component type; not required.
	     *
	     * @return a String describing this component
	     */
	    String description() default "Undescribed component type";
	}
